+++++++++++++++++++++++++++++++++++++++++++++++==---:.:::.  :*#******
===========================================+++===-:+=::-:..-=-+++===+
----------============-----------::::------==+-=:-+*--*-.:++::+=====+
=--::::---====++++++++++++++++++++===++++==*++--=*#**#*-=*#-.===+=**#
*******###############%##%###***********************************++**#
#***######################************###****************************
###%%%%%##%##%%########***************#*************************+++**
###############*####***************#####*****************************
%%##%%%%%##%%#####***************+*#*###**##************************#
#####************#*************#*+#*###*******##********************#
#***###*******##******************###****###########****************#
#####*******####****************#*###******************##*#########*#
##********#*##*********************##*********#######################
#*******************************************###***######*****#######%
#*********************************#***+**********####****###########%
#*********#******###***#**********#***++*******######################
****************###****************#****+****************############
*********##*****###****************##****+*#****###*************####%
****************###*****#####*******#*****+*****####**********#######
************######******##**********##*****+******###*********####**#
*******###****######*****************#******++********************#*#
******####***#####*******************##*****************************#
%##%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%